package com.kotlin.flong.coroutines

import kotlinx.coroutines.*

/**
 * @Author:liangjl
 * @Date: 2020/7/7-17:00
 * @Eamil:jilongliang@sina.com
 * @Description:协程是轻量级的线程，协程取消在某个业务设定的时间还没进行执行，然后就可以通过取消
 * 1、协程的取消于超时
 *
 */
fun main() = runBlocking {

    var myjob = GlobalScope.launch {
        repeat(200) { i ->
            println("hello: $i")
            delay(500)
        }
    }

    delay(1100)

    println("hello world")

    /* //取消协程
     myjob.cancel(CancellationException("just a try"))

     //加入协程
     myjob.join()*/

    //取消作业并暂停调用协程，直到完成取消的作业。cancelAndJoin等于cancel和join方法
    myjob.cancelAndJoin()

    println("welcome")

}